પાયથોન સાથે એમ્બેડેડ સિસ્ટમ્સની દુનિયાનું અન્વેષણ કરો. આ વ્યાપક માર્ગદર્શિકા માઇક્રોપાયથોન, સર્કિટપાયથોન, હાર્ડવેર એકીકરણ અને વૈશ્વિક પ્રેક્ષકો માટે વાસ્તવિક દુનિયાના પ્રોજેક્ટ્સને આવરી લે છે.
ધાતુ પર પાયથોન: એમ્બેડેડ પ્રોગ્રામિંગ અને માઇક્રોકન્ટ્રોલર ઇન્ટિગ્રેશનમાં ઊંડાણપૂર્વકનું વિશ્લેષણ
દાયકાઓથી, એમ્બેડેડ સિસ્ટમ્સની દુનિયા - સ્માર્ટવોચથી લઈને ઔદ્યોગિક મશીનરી સુધી દરેક વસ્તુને સંચાલિત કરતા નાના કમ્પ્યુટર્સ - સી, સી++ અને એસેમ્બલી જેવી નીચલા સ્તરની ભાષાઓનું વિશિષ્ટ ક્ષેત્ર હતું. આ ભાષાઓ અજોડ નિયંત્રણ અને કામગીરી પ્રદાન કરે છે, પરંતુ તે એક ઊંચો શીખવાનો વળાંક અને લાંબા વિકાસ ચક્ર સાથે આવે છે. પાયથોન દાખલ કરો, તેની સરળતા, વાંચનક્ષમતા અને વિશાળ ઇકોસિસ્ટમ માટે પ્રખ્યાત ભાષા. એકવાર વેબ સર્વર્સ અને ડેટા સાયન્સ સુધી સીમિત રહ્યા પછી, પાયથોન હવે હાર્ડવેરના હૃદયમાં એક શક્તિશાળી દબાણ કરી રહ્યું છે, જે વિશ્વભરના વિકાસકર્તાઓ, શોખીનો અને નવીનતાકારોની નવી પેઢી માટે ઇલેક્ટ્રોનિક્સનું લોકશાહીકરણ કરે છે.
આ માર્ગદર્શિકા એ પાયથોન એમ્બેડેડ પ્રોગ્રામિંગની આકર્ષક દુનિયાનો તમારો વ્યાપક પરિચય છે. અમે અન્વેષણ કરીશું કે કેવી રીતે પાયથોન જેવી ઉચ્ચ-સ્તરની ભાષા હાર્ડવેરને સીધી રીતે નિયંત્રિત કરી શકે છે, આને શક્ય બનાવતા મુખ્ય પ્લેટફોર્મ્સની તપાસ કરીશું અને તમને સોફ્ટવેરથી સિલિકોન સુધીની તમારી સફર શરૂ કરવા માટે વ્યવહારુ ઉદાહરણો દ્વારા ચલાવીશું.
પાયથોન એમ્બેડેડ ઇકોસિસ્ટમ: ફક્ત સીપાયથોન કરતાં વધુ
તમે તમારા લેપટોપ પર ઉપયોગ કરો છો તે પ્રમાણભૂત પાયથોન (જેને સીપાયથોન તરીકે ઓળખવામાં આવે છે) ને તમે કોઈ લાક્ષણિક માઇક્રોકન્ટ્રોલર પર ઇન્સ્ટોલ કરી શકતા નથી. આ ઉપકરણોમાં અત્યંત મર્યાદિત સંસાધનો છે - અમે રેમના કિલોબાઇટ્સ અને પ્રોસેસિંગ પાવરના મેગાહર્ટ્ઝ વિશે વાત કરી રહ્યા છીએ, જે આધુનિક કમ્પ્યુટરમાં ગીગાબાઇટ્સ અને ગીગાહર્ટ્ઝથી તદ્દન વિપરીત છે. આ અંતરને દૂર કરવા માટે, પાયથોનની વિશેષ, દુર્બળ અમલીકરણો બનાવવામાં આવી હતી.
માઇક્રોકાયથોન: માઇક્રોકન્ટ્રોલર્સ માટે પાયથોન
માઇક્રોપાયથોન એ પાયથોન 3 પ્રોગ્રામિંગ ભાષાનું સંપૂર્ણ પુનર્લેખન છે, જે અવરોધિત હાર્ડવેર પર ચલાવવા માટે ઑપ્ટિમાઇઝ કરેલું છે. ડેમિયન જ્યોર્જ દ્વારા બનાવવામાં આવેલ, તેનો ઉદ્દેશ હાર્ડવેરની સીધી, નીચલા સ્તરની ઍક્સેસ પ્રદાન કરતી વખતે પ્રમાણભૂત પાયથોન સાથે શક્ય તેટલું સુસંગત બનવાનો છે.
- મુખ્ય લક્ષણો: તેમાં એક ઇન્ટરેક્ટિવ રીડ-ઇવલ-પ્રિન્ટ લૂપ (REPL) શામેલ છે, જે તમને કમ્પાઈલેશન સ્ટેપ વિના બોર્ડ સાથે કનેક્ટ થવા અને લાઈન-બાય-લાઈન કોડ એક્ઝિક્યુટ કરવાની મંજૂરી આપે છે. તે ખૂબ જ કાર્યક્ષમ છે, તેમાં નાનો મેમરી ફૂટપ્રિન્ટ છે અને તે સીધા હાર્ડવેર નિયંત્રણ માટે શક્તિશાળી મોડ્યુલો જેમ કે
machine(GPIO, I2C, SPI, વગેરે) પ્રદાન કરે છે. - શ્રેષ્ઠ કોના માટે: વિકાસકર્તાઓ જે મહત્તમ પ્રદર્શન, હાર્ડવેર પર સરસ-દાણાદાર નિયંત્રણ અને માઇક્રોકન્ટ્રોલર્સની વિશાળ શ્રેણીમાં સુસંગતતા ઇચ્છે છે. તે "ધાતુ" ની નજીક છે અને ઘણીવાર વધુ પ્રદર્શન-સંકટપૂર્ણ એપ્લિકેશનો માટે પસંદ કરવામાં આવે છે.
સર્કિટપાયથોન: શિખાઉ માણસ માટે અનુકૂળ પાવરહાઉસ
સર્કિટપાયથોન એ માઇક્રોપાયથોનની એક શાખા છે જે એડાફ્રૂટ દ્વારા બનાવવામાં આવી છે અને જાળવવામાં આવે છે, જે જાતે કરો (DIY) ઇલેક્ટ્રોનિક્સ ક્ષેત્રની અગ્રણી કંપની છે. જ્યારે તે માઇક્રોપાયથોન સાથે એક કોર શેર કરે છે, ત્યારે તેની ફિલસૂફી ઉપયોગમાં સરળતા અને શિક્ષણ પર કેન્દ્રિત છે.
- મુખ્ય લક્ષણો: સૌથી અગ્રણી લક્ષણ એ છે કે તે તમારા કમ્પ્યુટર પર માઇક્રોકન્ટ્રોલરને કેવી રીતે રજૂ કરે છે. જ્યારે તમે સર્કિટપાયથોન બોર્ડમાં પ્લગ કરો છો, ત્યારે તે એક નાની યુએસબી ડ્રાઇવ તરીકે દેખાય છે. તમે ફક્ત આ ડ્રાઇવ પર તમારી
code.pyફાઇલને સંપાદિત કરો અને તેને સાચવો; બોર્ડ ફરીથી લોડ થાય છે અને તમારો નવો કોડ આપમેળે ચલાવે છે. તેમાં તમામ સપોર્ટેડ બોર્ડમાં એકીકૃત API પણ છે, જેનો અર્થ છે કે એક બોર્ડ પર સેન્સર વાંચવા માટેનો કોડ ન્યૂનતમ ફેરફારો સાથે બીજા પર કામ કરશે. - શ્રેષ્ઠ કોના માટે: શરૂઆત કરનારાઓ, શિક્ષકો અને ઝડપી પ્રોટોટાઇપિંગ પર ધ્યાન કેન્દ્રિત કરનાર કોઈપણ. શીખવાનો વળાંક હળવો છે, અને એડાફ્રૂટ દ્વારા પૂરી પાડવામાં આવેલ વિસ્તૃત લાઇબ્રેરી ઇકોસિસ્ટમ સેન્સર, ડિસ્પ્લે અને અન્ય ઘટકોને એકીકૃત કરવાનું અત્યંત સરળ બનાવે છે.
માઇક્રોપાયથોન વિરુદ્ધ સર્કિટપાયથોન: ઝડપી સરખામણી
તેમની વચ્ચે પસંદગી મોટાભાગે તમારા પ્રોજેક્ટ ધ્યેયો અને અનુભવ સ્તર પર આવે છે.
- ફિલસૂફી: માઇક્રોપાયથોન હાર્ડવેર-વિશિષ્ટ સુવિધાઓ અને પ્રદર્શનને પ્રાથમિકતા આપે છે. સર્કિટપાયથોન સરળતા, સુસંગતતા અને શીખવાની સરળતાને પ્રાથમિકતા આપે છે.
- વર્કફ્લો: માઇક્રોપાયથોન સાથે, તમે સામાન્ય રીતે ઉપકરણના REPL થી કનેક્ટ થવા અને ફાઇલો અપલોડ કરવા માટે થોની જેવા સાધનનો ઉપયોગ કરો છો. સર્કિટપાયથોન સાથે, તમે USB ડ્રાઇવ પર
code.pyફાઇલને ખેંચો અને છોડો છો. - હાર્ડવેર સપોર્ટ: માઇક્રોપાયથોન ઘણા ઉત્પાદકોના બોર્ડની વિશાળ શ્રેણીને સપોર્ટ કરે છે. સર્કિટપાયથોન મુખ્યત્વે એડાફ્રૂટ અને પસંદગીના તૃતીય-પક્ષ ભાગીદારોના બોર્ડને સપોર્ટ કરે છે, પરંતુ તેનો સપોર્ટ ઊંડો અને સારી રીતે દસ્તાવેજીકૃત છે.
- લાઇબ્રેરીઓ: સર્કિટપાયથોનમાં સ્થાપિત કરવા માટે સરળ હોય તેવી લાઇબ્રેરીઓનો વિશાળ, ક્યુરેટેડ સમૂહ છે. માઇક્રોપાયથોન લાઇબ્રેરીઓ પણ ઉપલબ્ધ છે પરંતુ વધુ વિખેરાયેલી હોઈ શકે છે.
આ માર્ગદર્શિકા માટે, ખ્યાલો અને ઘણા કોડ ઉદાહરણો નજીવા ફેરફારો સાથે, બંનેને લાગુ પડશે. જ્યાં તે મહત્વપૂર્ણ છે ત્યાં અમે તફાવતો જણાવીશું.
તમારું હાર્ડવેર પસંદ કરી રહ્યા છીએ: માઇક્રોકન્ટ્રોલર યુદ્ધભૂમિ
માઇક્રોકન્ટ્રોલર્સ (MCUs) ની સંખ્યા કે જે પાયથોન ચલાવી શકે છે તે તાજેતરના વર્ષોમાં વિસ્ફોટ થયો છે. અહીં વૈશ્વિક પ્રેક્ષકો માટે કેટલાક સૌથી લોકપ્રિય અને સુલભ વિકલ્પો છે.
રાસ્પબેરી પાઇ પીકો અને RP2040
સંપૂર્ણ રાસ્પબેરી પાઇ કમ્પ્યુટર સાથે મૂંઝવણમાં ન આવવા માટે, પીકો એ ઓછી કિંમતનું, ઉચ્ચ પ્રદર્શનનું માઇક્રોકન્ટ્રોલર બોર્ડ છે જે કસ્ટમ RP2040 ચિપની આસપાસ બનેલું છે. તે હાર્ડવેર પર પાયથોન માટે વૈશ્વિક સ્તરે પ્રિય બની ગયું છે.
- મુખ્ય લક્ષણો: એક શક્તિશાળી ડ્યુઅલ-કોર ARM Cortex-M0+ પ્રોસેસર, 264KB ની ઉદાર RAM અને પ્રોગ્રામેબલ I/O (PIO) નામની એક અનન્ય સુવિધા જે કસ્ટમ હાર્ડવેર ઇન્ટરફેસ બનાવવા માટે પરવાનગી આપે છે. નવું પીકો ડબલ્યુ મોડેલ ઓન-બોર્ડ વાઇ-ફાઇ ઉમેરે છે.
- તે પાયથોન માટે શા માટે મહાન છે: તેમાં માઇક્રોપાયથોન માટે સત્તાવાર, પ્રથમ-વર્ગનો સપોર્ટ છે અને તે સર્કિટપાયથોન દ્વારા પણ સારી રીતે સપોર્ટેડ છે. તેની નીચી કિંમત (ઘણીવાર $10 યુએસડી થી ઓછી) અને મજબૂત કામગીરી તેને એક અવિશ્વસનીય મૂલ્ય બનાવે છે.
એસ્પેસિફ ઇએસપી32 અને ઇએસપી8266
શાંઘાઈ સ્થિત કંપની એસ્પેસિફ સિસ્ટમ્સ દ્વારા બનાવવામાં આવેલ, ઇએસપી ચિપ્સનો પરિવાર આઇઓટીનો અવિવાદિત ચેમ્પિયન છે. તેઓ તેમની સંકલિત વાઇ-ફાઇ અને બ્લૂટૂથ ક્ષમતાઓ માટે જાણીતા છે, જે તેમને કનેક્ટેડ પ્રોજેક્ટ્સ માટે ડિફોલ્ટ પસંદગી બનાવે છે.
- મુખ્ય લક્ષણો: શક્તિશાળી સિંગલ અથવા ડ્યુઅલ-કોર પ્રોસેસર્સ, બિલ્ટ-ઇન વાઇ-ફાઇ અને (ઇએસપી32 પર) બ્લૂટૂથ. તે વિશ્વભરના ઉત્પાદકોના હજારો વિવિધ વિકાસ બોર્ડ પર ઉપલબ્ધ છે.
- તેઓ પાયથોન માટે શા માટે મહાન છે: ઉત્તમ માઇક્રોપાયથોન સપોર્ટ તમને પાયથોન કોડની થોડી લીટીઓ સાથે કનેક્ટેડ ઉપકરણો બનાવવા દે છે. તેમની પ્રોસેસિંગ પાવર વેબ સર્વર્સ ચલાવવા અથવા બહુવિધ સેન્સર્સમાંથી ડેટા હેન્ડલ કરવા જેવા જટિલ કાર્યો માટે પૂરતી છે.
એડાફ્રૂટ ફેધર, ઇટ્સબીટસી અને ટ્રિંકેટ ઇકોસિસ્ટમ્સ
એડાફ્રૂટ પ્રમાણિત ફોર્મ ફેક્ટર્સમાં બોર્ડની વિશાળ શ્રેણી પ્રદાન કરે છે. આ કોઈ ચોક્કસ ચિપ્સ નથી પરંતુ સર્કિટપાયથોન ઇકોસિસ્ટમમાં એકીકૃત રીતે કામ કરવા માટે રચાયેલ ઉત્પાદન પરિવારો છે.
- મુખ્ય લક્ષણો: ફેધર પરિવારના બોર્ડ એક સામાન્ય પિનઆઉટ શેર કરે છે, જે તેમને બદલી શકાય તેવા બનાવે છે. ઘણામાં બિલ્ટ-ઇન બેટરી ચાર્જિંગ સર્કિટ્સ અને કનેક્ટર્સનો સમાવેશ થાય છે. તેઓ આરપી2040, ઇએસપી32 અને અન્ય સહિત વિવિધ માઇક્રોકન્ટ્રોલર્સ સાથે ઉપલબ્ધ છે.
- તેઓ પાયથોન માટે શા માટે મહાન છે: તેઓ સર્કિટપાયથોન માટે શરૂઆતથી ડિઝાઇન કરવામાં આવ્યા છે. આ ચુસ્ત એકીકરણનો અર્થ એ છે કે સેંકડો લાઇબ્રેરીઓ અને ટ્યુટોરિયલ્સની ઍક્સેસ સાથે સરળ, પ્લગ-એન્ડ-પ્લે અનુભવ.
શરૂઆત કરી રહ્યા છીએ: હાર્ડવેર પર તમારું પ્રથમ "હેલો, વર્લ્ડ"
ચાલો સિદ્ધાંતથી પ્રેક્ટિસ તરફ આગળ વધીએ. એમ્બેડેડ પ્રોગ્રામિંગનું પરંપરાગત "હેલો, વર્લ્ડ" એ એલઇડીને ઝબકાવવાનું છે. આ સરળ ક્રિયા પુષ્ટિ કરે છે કે તમારી આખી ટૂલચેન - તમારા કોડ એડિટરથી લઈને બોર્ડ પરના ફર્મવેર સુધી - યોગ્ય રીતે કાર્ય કરી રહી છે.
પૂર્વજરૂરીયાતો
- સપોર્ટેડ માઇક્રોકન્ટ્રોલર બોર્ડ (દા.ત., રાસ્પબેરી પાઇ પીકો, ઇએસપી32 અથવા એડાફ્રૂટ બોર્ડ).
- યુએસબી કેબલ જે ડેટા ટ્રાન્સફરને સપોર્ટ કરે છે (ફક્ત ચાર્જિંગ જ નહીં).
- એક કમ્પ્યુટર (વિન્ડોઝ, મcકોસ અથવા લિનક્સ).
પગલું 1: ફર્મવેર ઇન્સ્ટોલ કરો
તમારા બોર્ડને તેના પર ઇન્સ્ટોલ કરેલ માઇક્રોપાયથોન અથવા સર્કિટપાયથોન ઇન્ટરપ્રેટરની જરૂર છે. આને "ફર્મવેરને ફ્લેશ કરવું" કહેવામાં આવે છે.
- સર્કિટપાયથોન માટે: circuitpython.org ની મુલાકાત લો, તમારું બોર્ડ શોધો અને
.uf2ફાઇલ ડાઉનલોડ કરો. તમારા બોર્ડને બુટલોડર મોડમાં મૂકો (આમાં સામાન્ય રીતે તેને પ્લગ ઇન કરતી વખતે "BOOT" અથવા "RESET" બટન દબાવી રાખવાનો સમાવેશ થાય છે). તે USB ડ્રાઇવ તરીકે દેખાશે. ડાઉનલોડ કરેલી.uf2ફાઇલને તેના પર ખેંચો. ડ્રાઇવ બહાર નીકળી જશે અને ફરીથી દેખાશે, હવે તેનું નામ CIRCUITPY હશે. - માઇક્રોપાયથોન માટે: micropython.org ની મુલાકાત લો, તમારું બોર્ડ શોધો અને ફર્મવેર ફાઇલ ડાઉનલોડ કરો (ઘણીવાર
.uf2અથવા.binફાઇલ). પ્રક્રિયા સમાન છે: બોર્ડને બુટલોડર મોડમાં મૂકો અને ફાઇલને કૉપિ કરો.
પગલું 2: તમારું એડિટર સેટ કરો
જ્યારે તમે કોઈપણ ટેક્સ્ટ એડિટરનો ઉપયોગ કરી શકો છો, ત્યારે એક સમર્પિત IDE વિકાસને વધુ સરળ બનાવે છે. થોની IDE ની શરૂઆત કરનારાઓ માટે ખૂબ ભલામણ કરવામાં આવે છે. તે મફત, ક્રોસ-પ્લેટફોર્મ છે અને માઇક્રોપાયથોન અને સર્કિટપાયથોન માટે બિલ્ટ-ઇન સપોર્ટ સાથે આવે છે. તે આપમેળે તમારા બોર્ડને શોધી કાઢે છે, ઉપકરણના REPL ની ઍક્સેસ પ્રદાન કરે છે અને ફાઇલો અપલોડ કરવાનું સરળ બનાવે છે.
પગલું 3: બ્લિંકિંગ એલઇડી કોડ
હવે કોડ માટે. માઇક્રોપાયથોન માટે main.py નામની એક નવી ફાઇલ બનાવો અથવા સર્કિટપાયથોન માટે હાલની code.py ને સંપાદિત કરો.
રાસ્પબેરી પાઇ પીકો ડબલ્યુ પર માઇક્રોપાયથોનનું ઉદાહરણ:
import machine
import utime
# પીકો ડબલ્યુ પરના ઓનબોર્ડ એલઇડીને એક વિશેષ નામ દ્વારા એક્સેસ કરવામાં આવે છે
led = machine.Pin("LED", machine.Pin.OUT)
while True:
led.toggle()
print("એલઇડી ટogગલ!")
utime.sleep(0.5) # અડધી સેકન્ડ માટે રાહ જુઓ
મોટાભાગના એડાફ્રૂટ બોર્ડ પર સર્કિટપાયથોનનું ઉદાહરણ:
import board
import digitalio
import time
# ઓનબોર્ડ એલઇડી સામાન્ય રીતે 'LED' નામના પિન સાથે જોડાયેલ હોય છે
led = digitalio.DigitalInOut(board.LED)
led.direction = digitalio.Direction.OUTPUT
while True:
led.value = not led.value
print("એલઇડી ટogગલ!")
time.sleep(0.5)
કોડનું વિશ્લેષણ:
import: અમે હાર્ડવેર (machine,digitalio,board) ને નિયંત્રિત કરવા અને સમયનું સંચાલન કરવા માટે લાઇબ્રેરીઓ આયાત કરીએ છીએ (utime,time).- પિન સેટઅપ: અમે વ્યાખ્યાયિત કરીએ છીએ કે આપણે કઈ શારીરિક પિનને નિયંત્રિત કરવા માંગીએ છીએ (ઓનબોર્ડ એલઇડી) અને તેને આઉટપુટ તરીકે ગોઠવીએ છીએ.
- લૂપ:
while True:લૂપ કાયમ માટે ચાલે છે. લૂપની અંદર, અમે એલઇડીની સ્થિતિને ટogગલ કરીએ છીએ (ચાલુથી બંધ અથવા બંધથી ચાલુ), સીરીયલ કન્સોલ પર એક સંદેશ છાપીએ છીએ (થોનીમાં દૃશ્યમાન) અને પછી અડધી સેકન્ડ માટે થોભાવો.
આ ફાઇલને તમારા ઉપકરણ પર સાચવો. ઓનબોર્ડ એલઇડી તરત જ ઝબકવું શરૂ થવું જોઈએ. અભિનંદન, તમે હમણાં જ પાયથોન સીધા માઇક્રોકન્ટ્રોલર પર ચલાવ્યું છે!
ઊંડાણપૂર્વક ડાઇવિંગ: માઇક્રોકન્ટ્રોલર્સ પર પાયથોનના મુખ્ય ખ્યાલો
એલઇડીને ઝબકાવવું એ માત્ર શરૂઆત છે. ચાલો મૂળભૂત ખ્યાલોનું અન્વેષણ કરીએ જેનો ઉપયોગ તમે વધુ જટિલ પ્રોજેક્ટ્સ બનાવવા માટે કરશો.
સામાન્ય હેતુ ઇનપુટ/આઉટપુટ (GPIO)
GPIO પિન એ ભૌતિક જોડાણો છે જે તમારા માઇક્રોકન્ટ્રોલરને વિશ્વ સાથે ક્રિયાપ્રતિક્રિયા કરવા દે છે. તેમને ઇનપુટ્સ (બટનો અથવા સેન્સર્સમાંથી ડેટા વાંચવા માટે) અથવા આઉટપુટ્સ (એલઇડી, મોટર્સ અથવા રિલેને નિયંત્રિત કરવા માટે) તરીકે ગોઠવી શકાય છે.
બટન પ્રેસ વાંચવું (માઇક્રોપાયથોન):
import machine
import utime
button = machine.Pin(14, machine.Pin.IN, machine.Pin.PULL_DOWN)
while True:
if button.value() == 1:
print("બટન દબાવવામાં આવ્યું છે!")
utime.sleep(0.1)
અહીં, અમે પિન 14 ને આંતરિક પુલ-ડાઉન રેઝિસ્ટર સાથે ઇનપુટ તરીકે ગોઠવીએ છીએ. લૂપ સતત તપાસે છે કે બટનની કિંમત 1 (ઉચ્ચ) છે કે કેમ, જે દર્શાવે છે કે તે દબાવવામાં આવ્યું છે.
સેન્સર્સ સાથે કામ કરવું
સૌથી રસપ્રદ પ્રોજેક્ટ્સમાં સેન્સર્સ શામેલ છે. પાયથોન એનાલોગ અને ડિજિટલ સેન્સર્સ બંનેમાંથી વાંચવાનું સરળ બનાવે છે.
- એનાલોગ સેન્સર્સ: આ સેન્સર્સ, જેમ કે ફોટોરેઝિસ્ટર્સ (પ્રકાશ માપવા) અથવા પોટેન્ટિઓમીટર્સ, ચલ વોલ્ટેજ પ્રદાન કરે છે. માઇક્રોકન્ટ્રોલરનું એનાલોગ-ટુ-ડિજિટલ કન્વર્ટર (ADC) આ વોલ્ટેજ વાંચે છે અને તેને એક નંબરમાં રૂપાંતરિત કરે છે.
- ડિજિટલ સેન્સર્સ: આ વધુ અદ્યતન સેન્સર્સ (જેમ કે તાપમાન/ભેજ સેન્સર્સ, એક્સેલરોમીટર્સ) ચોક્કસ પ્રોટોકોલનો ઉપયોગ કરીને વાતચીત કરે છે. બે સૌથી સામાન્ય છે I2C (ઇન્ટર-ઇન્ટિગ્રેટેડ સર્કિટ) અને SPI (સીરીયલ પેરિફેરલ ઇન્ટરફેસ). આ પ્રોટોકોલ થોડી પિનનો ઉપયોગ કરીને બહુવિધ ઉપકરણોને માઇક્રોકન્ટ્રોલર સાથે વાતચીત કરવાની મંજૂરી આપે છે. સદભાગ્યે, તમારે ભાગ્યે જ નીચલા સ્તરની વિગતો જાણવાની જરૂર છે, કારણ કે લાઇબ્રેરીઓ તમારા માટે સંચારને હેન્ડલ કરે છે.
BMP280 સેન્સર સાથે તાપમાન વાંચવું (સર્કિટપાયથોન):
import board
import adafruit_bmp280
# એક I2C બસ ઓબ્જેક્ટ બનાવો
i2c = board.I2C() # ડિફોલ્ટ SCL અને SDA પિનનો ઉપયોગ કરે છે
# એક સેન્સર ઓબ્જેક્ટ બનાવો
bmp280 = adafruit_bmp280.Adafruit_BMP280_I2C(i2c)
# તાપમાન વાંચો
temperature = bmp280.temperature
print(f"તાપમાન: {temperature:.2f} C")
પલ્સ પહોળાઈ મોડ્યુલેશન (PWM)
PWM એ એક તકનીક છે જેનો ઉપયોગ ડિજિટલ પિન પર એનાલોગ આઉટપુટનું અનુકરણ કરવા માટે થાય છે. પિનને ઝડપથી ચાલુ અને બંધ કરીને, તમે સરેરાશ વોલ્ટેજને નિયંત્રિત કરી શકો છો, જે LED ને ઝાંખો કરવા, ડીસી મોટરની ગતિને નિયંત્રિત કરવા અથવા સર્વો મોટરને સ્થિત કરવા માટે ઉપયોગી છે.
કનેક્ટિવિટી અને ઇન્ટરનેટ ઓફ થિંગ્સ (IoT)
આ તે છે જ્યાં ઇએસપી32 અને પીકો ડબલ્યુ જેવા બોર્ડ ખરેખર ચમકે છે. બિલ્ટ-ઇન વાઇ-ફાઇ સાથે, પાયથોન આઇઓટી ઉપકરણો બનાવવાનું આશ્ચર્યજનક રીતે સરળ બનાવે છે.
વાઇ-ફાઇથી કનેક્ટ થઈ રહ્યું છે
તમારા ઉપકરણને નેટવર્કથી કનેક્ટ કરવું એ પ્રથમ પગલું છે. તમારે તમારા નેટવર્ક ઓળખપત્રોને સુરક્ષિત રીતે સ્ટોર કરવા માટે એક ફાઇલ (ઘણીવાર સર્કિટપાયથોનમાં secrets.py કહેવાય છે) બનાવવાની જરૂર પડશે.
ઇએસપી32 ને વાઇ-ફાઇથી કનેક્ટ કરવું (માઇક્રોપાયથોન):
import network
SSID = "તમારું નેટવર્કનામ"
PASSWORD = "તમારો નેટવર્કપાસવર્ડ"
station = network.WLAN(network.STA_IF)
station.active(True)
station.connect(SSID, PASSWORD)
while not station.isconnected():
pass
print("કનેક્શન સફળ!")
print(station.ifconfig())
વેબ વિનંતીઓ કરવી
એકવાર કનેક્ટ થયા પછી, તમે ઇન્ટરનેટ સાથે ક્રિયાપ્રતિક્રિયા કરી શકો છો. તમે એપ્લિકેશન પ્રોગ્રામિંગ ઇન્ટરફેસ (APIs) માંથી ડેટા મેળવી શકો છો, વેબ સેવા પર સેન્સર ડેટા પોસ્ટ કરી શકો છો અથવા ઓનલાઇન ક્રિયાઓને ટ્રિગર કરી શકો છો.
API માંથી JSON ડેટા મેળવવો (`urequests` લાઇબ્રેરીનો ઉપયોગ કરીને):
import urequests
response = urequests.get("http://worldtimeapi.org/api/timezone/Etc/UTC")
data = response.json()
print(f"વર્તમાન UTC સમય છે: {data['datetime']}")
response.close()
MQTT: IoT ની ભાષા
જ્યારે HTTP ઉપયોગી છે, ત્યારે IoT સંચાર માટેનો ગોલ્ડ સ્ટાન્ડર્ડ MQTT (મેસેજ ક્યુઇંગ ટેલિમેટ્રી ટ્રાન્સપોર્ટ) છે. તે ઓછા-બેન્ડવિડ્થ, ઉચ્ચ-લેટન્સી નેટવર્ક્સ માટે રચાયેલ એક હલકો પ્રકાશન-સબ્સ્ક્રાઇબ પ્રોટોકોલ છે. એક ઉપકરણ સેન્સર ડેટાને "વિષય" પર "પ્રકાશિત" કરી શકે છે, અને તે વિષય પર "સબ્સ્ક્રાઇબ" કરેલું કોઈપણ અન્ય ઉપકરણ (અથવા સર્વર) તરત જ ડેટા પ્રાપ્ત કરશે. વેબ સર્વરને સતત મતદાન કરવા કરતાં આ વધુ કાર્યક્ષમ છે.
અદ્યતન વિષયો અને શ્રેષ્ઠ પ્રયાસો
જેમ જેમ તમારા પ્રોજેક્ટ્સ વધે છે, તેમ તેમ તમે માઇક્રોકન્ટ્રોલરની મર્યાદાઓનો સામનો કરશો. મજબૂત એમ્બેડેડ પાયથોન કોડ લખવા માટે અહીં કેટલાક શ્રેષ્ઠ પ્રયાસો છે.
- મેમરી મેનેજમેન્ટ: RAM એ તમારું સૌથી કિંમતી સંસાધન છે. લૂપ્સની અંદર મોટી વસ્તુઓ બનાવવાનું ટાળો જેમ કે યાદીઓ અથવા લાંબી શબ્દમાળાઓ. મેમરીને મેન્યુઅલી ટ્રિગર કરવા અને ખાલી કરવા માટે
gcમોડ્યુલનો ઉપયોગ કરો (import gc; gc.collect()). - પાવર મેનેજમેન્ટ: બેટરી સંચાલિત ઉપકરણો માટે, પાવર કાર્યક્ષમતા મહત્વપૂર્ણ છે. મોટાભાગના માઇક્રોકન્ટ્રોલર્સમાં એક "ડીપસ્લીપ" મોડ હોય છે જે ચિપના મોટાભાગના ભાગને બંધ કરે છે, ખૂબ ઓછી શક્તિનો ઉપયોગ કરે છે અને ચોક્કસ સમય પછી અથવા બાહ્ય ટ્રિગરમાંથી જાગી શકે છે.
- ફાઇલ સિસ્ટમ: તમે નિયમિત કમ્પ્યુટરની જેમ ઓનબોર્ડ ફ્લેશ મેમરી પર ફાઇલો વાંચી અને લખી શકો છો. આ ડેટા લોગ કરવા અથવા ગોઠવણી સેટિંગ્સ સ્ટોર કરવા માટે યોગ્ય છે.
- અવરોધો: લૂપમાં બટનની સ્થિતિને સતત તપાસવાને બદલે (એક પ્રક્રિયા જેને મતદાન કહેવાય છે), તમે વિક્ષેપનો ઉપયોગ કરી શકો છો. ઇન્ટરપ્ટ રિક્વેસ્ટ (IRQ) એ એક હાર્ડવેર સંકેત છે જે મુખ્ય કોડને વિરામ આપે છે અને એક વિશેષ કાર્ય ચલાવે છે, પછી ફરી શરૂ થાય છે. આ ખૂબ જ કાર્યક્ષમ અને પ્રતિભાવશીલ છે.
વાસ્તવિક દુનિયાના પ્રોજેક્ટ આઇડિયા શોકેસ
બનાવવા માટે તૈયાર છો? અહીં થોડા વિચારો છે જે આપણે ચર્ચા કરેલા ખ્યાલોને જોડે છે:
- સ્માર્ટ વેધર સ્ટેશન: તાપમાન, ભેજ અને દબાણ માપવા માટે BME280 સેન્સર સાથે ઇએસપી32 નો ઉપયોગ કરો. નાના OLED સ્ક્રીન પર ડેટા પ્રદર્શિત કરો અને તેને એડાફ્રૂટ આઇઓ અથવા હોમ આસિસ્ટન્ટ જેવા ડેશબોર્ડ પર MQTT દ્વારા પ્રકાશિત કરો.
- સ્વયંસંચાલિત પ્લાન્ટ વોટરિંગ સિસ્ટમ: રાસ્પબેરી પાઇ પીકો સાથે માટી ભેજ સેન્સરને કનેક્ટ કરો. જ્યારે જમીન સૂકી હોય, ત્યારે થોડી સેકંડ માટે નાના વોટર પંપને ચાલુ કરનાર રિલેને સક્રિય કરવા માટે GPIO પિનનો ઉપયોગ કરો.
- કસ્ટમ યુએસબી મેક્રો પેડ: સર્કિટપાયથોન બોર્ડનો ઉપયોગ કરો જે યુએસબી એચઆઇડી (હ્યુમન ઇન્ટરફેસ ડિવાઇસ) ને સપોર્ટ કરે છે, જેમ કે પીકો અથવા ઘણા એડાફ્રૂટ બોર્ડ. જટિલ કીબોર્ડ શોર્ટકટ્સ મોકલવા અથવા પૂર્વ-નિર્ધારિત ટેક્સ્ટ લખવા માટે પ્રોગ્રામ બટનો, તમારી ઉત્પાદકતામાં વધારો કરે છે.
નિષ્કર્ષ: ભવિષ્ય પાયથોનમાં એમ્બેડેડ છે
પાયથોને મૂળભૂત રીતે એમ્બેડેડ ડેવલપમેન્ટના લેન્ડસ્કેપને બદલી નાખ્યું છે. તેણે પ્રવેશ માટેનો અવરોધ ઓછો કર્યો છે, સોફ્ટવેર ડેવલપર્સને હાર્ડવેરને નિયંત્રિત કરવા અને હાર્ડવેર ઇજનેરોને પહેલાં કરતાં વધુ ઝડપથી પ્રોટોટાઇપ કરવા સક્ષમ બનાવ્યા છે. થોડી લીટીઓમાં સેન્સર વાંચવાની અથવા ઇન્ટરનેટથી કનેક્ટ થવાની સરળતા એ ગેમ-ચેન્જર છે.
એલઇડીને ઝબકાવવાથી લઈને સંપૂર્ણ સુવિધાયુક્ત આઇઓટી ડિવાઇસ સુધીની યાત્રા એક અત્યંત લાભદાયી છે. વૈશ્વિક સમુદાય અને ઓપન-સોર્સ લાઇબ્રેરીઓની સંપત્તિનો અર્થ એ છે કે જ્યારે તમે કોઈ પડકારનો સામનો કરો છો ત્યારે તમે ક્યારેય ખરેખર એકલા હોતા નથી. તેથી એક બોર્ડ પસંદ કરો, ફર્મવેરને ફ્લેશ કરો અને પાયથોન અને ભૌતિક વિશ્વના આકર્ષક આંતરછેદમાં તમારી સાહસ શરૂ કરો. એકમાત્ર મર્યાદા તમારી કલ્પના છે.